第5章 Dockerfileを使ったコードによるサーバ構築
Dockerfileによる構成管理
DockerfileからDockerイメージの作成
docker build -t [生成するイメージ]:[タグ名] [Doclerfileの場所]
コマンド/デーモンの実行
コマンドの実行
RUN [実行したいコマンド]
Shell形式
RUN apt-get install -y nginx
Exec形式
RUN ["bin/bash", "-c", "apt-get install -y nginx"]
デーモンの実行
CMD [実行したいコマンド]
1つのCMD命令を記述可能で、複数ある場合は最後のコマンドのみが有効になる。
Exec形式
CMD ["nginx", "-g", "deamon off;"]
Shell形式
CMD nginx -g 'deamon off';
ENTRYPOINT命令のパラメータ形式
デーモンの実行
ENTRYPOINT [実行したいコマンド]
Exec形式
ENTRYPOINT ["nginx", "-g", "deamon off;"]
Shell形式
ENTRYPOINT nginx -g 'deamon off;'
ビルド完了後に実行される命令
ONBUILD [実行したいコマンド]
システムコールシグナルの設定
コンテナを終了するときに送信するシグナルの設定をする
STOPSIGNAL [シグナル]
コンテナのヘルスチェック
コンテナ内のプロセスが正しく動作しているかをチェックする
HEALTHCHECK [オプション] CMD 実行するコマンド
環境/ネットワークの設定
環境変数の設定
ENV [key] [value]
ENV [key]=[value]
作業ディレクトリの指定
Dockerfileに書かれた以下の命令を実行するための作業用ディレクトリを指定する。
RUN
CMD
ENTRYPOINT
COPY
ADD
WORKDIR [作業ディレクトリのパス]
ユーザーの指定
イメージ実行やDockerfileの以下の命令を実行するためのユーザーを指定する。
RUN
CMD
ENTRYPOINT
USER [ユーザー名/UID]
ラベルの指定
LABEL <キー名>=<値>
ポートの設定
コンテナの公開するポート番号を指定する。
EXPOSE <ポート番号>
Dockerfile内変数の設定
ARG <名前>[=デフォルト値]
デフォルトシェルの指定
SHELL ["シェルのパス", "パラメータ"]
ファイルの設定
ファイル/ディレクトリの追加
ADD <ホストのファイルパス> <Dockerイメージのファイルパス>
ADD ["<ホストのファイルパス>" "<Dockerイメージのファイルパス>"]
ファイルのコピー
COPY <ホストのファイルパス> <Dockerイメージのファイルパス>
COPY ["<ホストのファイルパス>" "<Dockerイメージのファイルパス>"]
ボリュームのマウント
VOLUME ["/マウントポイント"]